#ifndef YY_parse_h_included
#define YY_parse_h_included
/*#define YY_USE_CLASS 
*/
#line 1 "/usr/share/bison++/bison.h"
/* before anything */
#ifdef c_plusplus
 #ifndef __cplusplus
  #define __cplusplus
 #endif
#endif


 #line 8 "/usr/share/bison++/bison.h"

#line 53 "cel.ypp"
typedef union {
	int intType;
	double doubleType;
	char * stringType;
	CEL::Expression *expressionType;
	CEL::BaseType *baseType;	
	CEL::CallFunctionOperator *callFunctionType;
	CEL::Operator *operatorType;
	CEL::ComparisonOperator *cmpOperatorType;
	CEL::ConditionalOperator *cndOperatorType;
	CEL::MathOperator *mathOperatorType;
	CEL::Symbol *symbolType;
	CEL::CelParser *parserType;	
	CEL::HashTable *hashTableType;
	CEL::PixelSetExpression *pixelSetExpressionType;
	CEL::VectorOfTargets *vectorOfTargetsType;
	CEL::TargetExpression *targetExpressionType;
	CEL::Target *targetType;
	std::vector<CEL::Expression *> *vectorExpressionType;
} yy_parse_stype;
#define YY_parse_STYPE yy_parse_stype
#ifndef YY_USE_CLASS
#define YYSTYPE yy_parse_stype
#endif

#line 21 "/usr/share/bison++/bison.h"
 /* %{ and %header{ and %union, during decl */
#ifndef YY_parse_COMPATIBILITY
 #ifndef YY_USE_CLASS
  #define  YY_parse_COMPATIBILITY 1
 #else
  #define  YY_parse_COMPATIBILITY 0
 #endif
#endif

#if YY_parse_COMPATIBILITY != 0
/* backward compatibility */
 #ifdef YYLTYPE
  #ifndef YY_parse_LTYPE
   #define YY_parse_LTYPE YYLTYPE
/* WARNING obsolete !!! user defined YYLTYPE not reported into generated header */
/* use %define LTYPE */
  #endif
 #endif
/*#ifdef YYSTYPE*/
  #ifndef YY_parse_STYPE
   #define YY_parse_STYPE YYSTYPE
  /* WARNING obsolete !!! user defined YYSTYPE not reported into generated header */
   /* use %define STYPE */
  #endif
/*#endif*/
 #ifdef YYDEBUG
  #ifndef YY_parse_DEBUG
   #define  YY_parse_DEBUG YYDEBUG
   /* WARNING obsolete !!! user defined YYDEBUG not reported into generated header */
   /* use %define DEBUG */
  #endif
 #endif 
 /* use goto to be compatible */
 #ifndef YY_parse_USE_GOTO
  #define YY_parse_USE_GOTO 1
 #endif
#endif

/* use no goto to be clean in C++ */
#ifndef YY_parse_USE_GOTO
 #define YY_parse_USE_GOTO 0
#endif

#ifndef YY_parse_PURE

 #line 65 "/usr/share/bison++/bison.h"

#line 65 "/usr/share/bison++/bison.h"
/* YY_parse_PURE */
#endif


 #line 68 "/usr/share/bison++/bison.h"
#define YY_parse_PARSE yyparse
#define YY_parse_LEX yylex
#define YY_parse_ERROR yyerror
#define YY_parse_LVAL yylval
#define YY_parse_CHAR yychar
#define YY_parse_DEBUG yydebug

#line 68 "/usr/share/bison++/bison.h"
/* prefix */

#ifndef YY_parse_DEBUG

 #line 71 "/usr/share/bison++/bison.h"

#line 71 "/usr/share/bison++/bison.h"
/* YY_parse_DEBUG */
#endif

#ifndef YY_parse_LSP_NEEDED

 #line 75 "/usr/share/bison++/bison.h"

#line 75 "/usr/share/bison++/bison.h"
 /* YY_parse_LSP_NEEDED*/
#endif

/* DEFAULT LTYPE*/
#ifdef YY_parse_LSP_NEEDED
 #ifndef YY_parse_LTYPE
  #ifndef BISON_YYLTYPE_ISDECLARED
   #define BISON_YYLTYPE_ISDECLARED
typedef
  struct yyltype
    {
      int timestamp;
      int first_line;
      int first_column;
      int last_line;
      int last_column;
      char *text;
   }
  yyltype;
  #endif

  #define YY_parse_LTYPE yyltype
 #endif
#endif

/* DEFAULT STYPE*/
#ifndef YY_parse_STYPE
 #define YY_parse_STYPE int
#endif

/* DEFAULT MISCELANEOUS */
#ifndef YY_parse_PARSE
 #define YY_parse_PARSE yyparse
#endif

#ifndef YY_parse_LEX
 #define YY_parse_LEX yylex
#endif

#ifndef YY_parse_LVAL
 #define YY_parse_LVAL yylval
#endif

#ifndef YY_parse_LLOC
 #define YY_parse_LLOC yylloc
#endif

#ifndef YY_parse_CHAR
 #define YY_parse_CHAR yychar
#endif

#ifndef YY_parse_NERRS
 #define YY_parse_NERRS yynerrs
#endif

#ifndef YY_parse_DEBUG_FLAG
 #define YY_parse_DEBUG_FLAG yydebug
#endif

#ifndef YY_parse_ERROR
 #define YY_parse_ERROR yyerror
#endif

#ifndef YY_parse_PARSE_PARAM
 #ifndef __STDC__
  #ifndef __cplusplus
   #ifndef YY_USE_CLASS
    #define YY_parse_PARSE_PARAM
    #ifndef YY_parse_PARSE_PARAM_DEF
     #define YY_parse_PARSE_PARAM_DEF
    #endif
   #endif
  #endif
 #endif
 #ifndef YY_parse_PARSE_PARAM
  #define YY_parse_PARSE_PARAM void
 #endif
#endif

/* TOKEN C */
#ifndef YY_USE_CLASS

 #ifndef YY_parse_PURE
  #ifndef yylval
   extern YY_parse_STYPE YY_parse_LVAL;
  #else
   #if yylval != YY_parse_LVAL
    extern YY_parse_STYPE YY_parse_LVAL;
   #else
    #warning "Namespace conflict, disabling some functionality (bison++ only)"
   #endif
  #endif
 #endif


 #line 169 "/usr/share/bison++/bison.h"
#define	SQRT	258
#define	SQR	259
#define	SIN	260
#define	COS	261
#define	TAN	262
#define	ASIN	263
#define	ACOS	264
#define	ATAN	265
#define	ATAN2	266
#define	EXP	267
#define	IF	268
#define	ELSE	269
#define	COUNT	270
#define	COVEREDBY	271
#define	LEFTOF	272
#define	RIGHTOF	273
#define	ABOVEOF	274
#define	BELOWOF	275
#define	RENDER	276
#define	CUBERENDER	277
#define	DECLARE	278
#define	EVALUATE	279
#define	CEL_INCLUDE	280
#define	CELEOF	281
#define	SILHOUETTE	282
#define	MAXX	283
#define	MINX	284
#define	MAXY	285
#define	MINY	286
#define	DISTANCE	287
#define	OVERLAP	288
#define	IMAGEWIDTH	289
#define	IMAGEHEIGHT	290
#define	RECT	291
#define	VIEWVOLUME	292
#define	FILENAME	293
#define	FUNCTION	294
#define	CMP	295
#define	DOUBLE	296
#define	UDOUBLE	297
#define	OP2_PREC_1	298
#define	OP2_PREC_2	299
#define	UMINUS	300


#line 169 "/usr/share/bison++/bison.h"
 /* #defines token */
/* after #define tokens, before const tokens S5*/
#else
 #ifndef YY_parse_CLASS
  #define YY_parse_CLASS parse
 #endif

 #ifndef YY_parse_INHERIT
  #define YY_parse_INHERIT
 #endif

 #ifndef YY_parse_MEMBERS
  #define YY_parse_MEMBERS 
 #endif

 #ifndef YY_parse_LEX_BODY
  #define YY_parse_LEX_BODY  
 #endif

 #ifndef YY_parse_ERROR_BODY
  #define YY_parse_ERROR_BODY  
 #endif

 #ifndef YY_parse_CONSTRUCTOR_PARAM
  #define YY_parse_CONSTRUCTOR_PARAM
 #endif
 /* choose between enum and const */
 #ifndef YY_parse_USE_CONST_TOKEN
  #define YY_parse_USE_CONST_TOKEN 0
  /* yes enum is more compatible with flex,  */
  /* so by default we use it */ 
 #endif
 #if YY_parse_USE_CONST_TOKEN != 0
  #ifndef YY_parse_ENUM_TOKEN
   #define YY_parse_ENUM_TOKEN yy_parse_enum_token
  #endif
 #endif

class YY_parse_CLASS YY_parse_INHERIT
{
public: 
 #if YY_parse_USE_CONST_TOKEN != 0
  /* static const int token ... */
  
 #line 212 "/usr/share/bison++/bison.h"
static const int SQRT;
static const int SQR;
static const int SIN;
static const int COS;
static const int TAN;
static const int ASIN;
static const int ACOS;
static const int ATAN;
static const int ATAN2;
static const int EXP;
static const int IF;
static const int ELSE;
static const int COUNT;
static const int COVEREDBY;
static const int LEFTOF;
static const int RIGHTOF;
static const int ABOVEOF;
static const int BELOWOF;
static const int RENDER;
static const int CUBERENDER;
static const int DECLARE;
static const int EVALUATE;
static const int CEL_INCLUDE;
static const int CELEOF;
static const int SILHOUETTE;
static const int MAXX;
static const int MINX;
static const int MAXY;
static const int MINY;
static const int DISTANCE;
static const int OVERLAP;
static const int IMAGEWIDTH;
static const int IMAGEHEIGHT;
static const int RECT;
static const int VIEWVOLUME;
static const int FILENAME;
static const int FUNCTION;
static const int CMP;
static const int DOUBLE;
static const int UDOUBLE;
static const int OP2_PREC_1;
static const int OP2_PREC_2;
static const int UMINUS;


#line 212 "/usr/share/bison++/bison.h"
 /* decl const */
 #else
  enum YY_parse_ENUM_TOKEN { YY_parse_NULL_TOKEN=0
  
 #line 215 "/usr/share/bison++/bison.h"
	,SQRT=258
	,SQR=259
	,SIN=260
	,COS=261
	,TAN=262
	,ASIN=263
	,ACOS=264
	,ATAN=265
	,ATAN2=266
	,EXP=267
	,IF=268
	,ELSE=269
	,COUNT=270
	,COVEREDBY=271
	,LEFTOF=272
	,RIGHTOF=273
	,ABOVEOF=274
	,BELOWOF=275
	,RENDER=276
	,CUBERENDER=277
	,DECLARE=278
	,EVALUATE=279
	,CEL_INCLUDE=280
	,CELEOF=281
	,SILHOUETTE=282
	,MAXX=283
	,MINX=284
	,MAXY=285
	,MINY=286
	,DISTANCE=287
	,OVERLAP=288
	,IMAGEWIDTH=289
	,IMAGEHEIGHT=290
	,RECT=291
	,VIEWVOLUME=292
	,FILENAME=293
	,FUNCTION=294
	,CMP=295
	,DOUBLE=296
	,UDOUBLE=297
	,OP2_PREC_1=298
	,OP2_PREC_2=299
	,UMINUS=300


#line 215 "/usr/share/bison++/bison.h"
 /* enum token */
     }; /* end of enum declaration */
 #endif
public:
 int YY_parse_PARSE(YY_parse_PARSE_PARAM);
 virtual void YY_parse_ERROR(char *msg) YY_parse_ERROR_BODY;
 #ifdef YY_parse_PURE
  #ifdef YY_parse_LSP_NEEDED
   virtual int  YY_parse_LEX(YY_parse_STYPE *YY_parse_LVAL,YY_parse_LTYPE *YY_parse_LLOC) YY_parse_LEX_BODY;
  #else
   virtual int  YY_parse_LEX(YY_parse_STYPE *YY_parse_LVAL) YY_parse_LEX_BODY;
  #endif
 #else
  virtual int YY_parse_LEX() YY_parse_LEX_BODY;
  YY_parse_STYPE YY_parse_LVAL;
  #ifdef YY_parse_LSP_NEEDED
   YY_parse_LTYPE YY_parse_LLOC;
  #endif
  int YY_parse_NERRS;
  int YY_parse_CHAR;
 #endif
 #if YY_parse_DEBUG != 0
  public:
   int YY_parse_DEBUG_FLAG;	/*  nonzero means print parse trace	*/
 #endif
public:
 YY_parse_CLASS(YY_parse_CONSTRUCTOR_PARAM);
public:
 YY_parse_MEMBERS 
};
/* other declare folow */
#endif


#if YY_parse_COMPATIBILITY != 0
 /* backward compatibility */
 /* Removed due to bison problems
 /#ifndef YYSTYPE
 / #define YYSTYPE YY_parse_STYPE
 /#endif*/

 #ifndef YYLTYPE
  #define YYLTYPE YY_parse_LTYPE
 #endif
 #ifndef YYDEBUG
  #ifdef YY_parse_DEBUG 
   #define YYDEBUG YY_parse_DEBUG
  #endif
 #endif

#endif
/* END */

 #line 267 "/usr/share/bison++/bison.h"
#endif
